function log<T> (value: T): T {
  console.log(value);
  return value;
}

interface LogA {
  <T>(value: T): T
}

interface logB<T>{
  (value: T) : T
}

let myLogA: LogA = log;
let myLogB: logB<string> = log;

myLogA('1');
myLogB('2')
